在 RPA 的世界中,處理網頁的動態元素通常被視為最難處理的功能,特別是在面對 RPA Challenge 這樣的動態網頁時,一般的 UI 元素抓取方式經常會出現錯誤。這篇文章我們就要來解決這類網站的問題,而由於此網站的複雜度較高,為清楚介紹每個細節步驟內容,會將文章拆分為兩篇進行說明。這篇文章會先進行挑戰項目的背景簡述,以及大致如何拆分此支自動化流程;下一篇文章則會針對「selector」的這個 RPA 功能進行詳細說明。
RPA Challenge 是一個設計用來測試和提升 RPA 技術的網站,是業界在設計 RPA Selector 練習場景時會第一個想到的經典網站,原因是該網站的 UI 元素是浮動 ID,無法透過一般的方法完成元素抓取。
該網站的左側有個 DOWNLOAD EXCEL 的字樣需先下載 Excel 檔案(內容如下圖),當下載完成後點下 Start 就會開始挑戰。網站會動態於網站右側生成網頁表單,並要求挑戰者依據 Excel 的內容自動化輸入資料,共有 10 份表單需填寫送出,10 份表單內容均填寫正確後,系統會顯示 100% 正確率。
而當每提交一次表單時,表單的欄位順序和 ID 都會發生變動,因此有別於一般的 RPA 網頁爬蟲技術,需要透過 RPA 的 selector 抓取方式才能正確讀到不同欄位。
透過圖片可以更好的觀察差異之處。比較下方兩張圖片,雖然同是 Address 的欄位,但經過網頁重整後,不光位置改變(紅框處),連同 ID 也改變了(圖片右側劃記黃色螢光處)。
其實要完成 RPA Challenge 有非常多方法可達成,可以建立新資料表直接放入抓好的 UI 元素的標籤,也可以透過以下較好懂的方式一步步為 Excel 欄位建立不同的名稱,不變的共同點在於後方流程都是要克服浮動 ID 的特性,透過 selector 將值輸入到正確欄位。
Index
值以套用至 For eachExcelData[Index][0]
意思是從 Excel 讀取的資料表格數據中,取出第幾行的值(Index),並搭配指定抓取的第幾行->0 代表 Excel 第一列的內容,1 代表 Excel 第二列的內容Index
+1,以自動進入下一個 loop 的表單填寫本文介紹了 RPA Challenge 的網站特性及其應用場景,以及若要成功自動化挑戰 RPA Challenge 這個網站,可以如何撰寫腳本流程。下一篇文章,我會延續這篇文章的內容,並進一步分享 Selector 在 RPA Challenge,Power Automate Desktop 的具體使用方式,可以如何克服浮動 ID 的抓取失敗問題。